/*
 * trace_cmd.h
 *
 *  Created on: 2012/07/04
 *      Author: guanxiaoying
 */

#ifndef TRACE_CMD_H_
#define TRACE_CMD_H_
#include "../../table/core_table.h"
#include "../../table/trace_cmd_table.h"

/*  スタック操作 */
#define STACK_PUSH	1
#define STACK_TEST	2
#define STACK_PULL	3





#define CONDEXP_TRUE	1
#define CONDEXP_FALSE	2
#define CONDEXP_VALUE	3



#define VARBLK_CLEARD  0x00000001UL



typedef struct _CMDCURRTRACEINFO
{
	UCHAR       pathFlag;
	UCHAR       loopFlg;
	AST			astFunction;
	AST         astPath;
	AST         astPathNext;
	AST         astPathParam;
	AST			astTable;
	AST			astNext;
	AST         astLoop;
	AST         astLoopExitBottom;
	AST         astPathStkBottom;
} CMDCURRTRACEINFO;
extern CMDCURRTRACEINFO stCmdCurrTraceInfo;

#include "TraceFunction.h"
#include "TraceVariBlock.h"
#include "TraceVariable.h"
#include "TraceValueScope.h"
#include "TraceValue.h"
#include "TraceStack.h"
#include "TracePathParam.h"
#include "TracePath.h"
#include "TraceOperand.h"
#include "TraceCmdList.h"
S4 Tr_RecInfo( AST astCmdList, U4 event );
#ifdef DEBUG
VOID Tr_PrintfCmdList( AST astCmd );
VOID Tr_PrintfPathInfo( AST astPath );
PSZ  Tr_DbGetCommandName( AST astCmd );
PSZ  Tr_DbGetLocation( AST astLoc );
VOID Tr_PrintfLog( AST astCmd );
VOID Tr_PrintfAllLog( VOID );
VOID Tr_PrintfLoopInfo( AST astPath );
VOID Tr_PrintfBlk( AST blk );
#endif
#endif /* TRACE_CMD_H_ */
